package main

import "fmt"

type Humaner interface {
	//子集
	//接口只有声明没有实现 由别人实现
	sayhi()
}
type Personer interface {
	//超集可以转化为子集 权限缩小
	Humaner //接口继承
	sing(lrc string)
}
type Student struct {
	name string
	id   int
}

func (tmp *Student) sayhi() {
	fmt.Println("student sayhi")
}
func (tmp *Student) sing(lrc string) {
	fmt.Println("sing:", lrc)
}

func main() {
	var i Personer
	s := &Student{"a", 12}
	i = s
	i.sayhi()
	i.sing("哈哈")
}
